/**
 *   \file base64_widget.h
 *   \brief base64
 */
#ifndef _BASE64_WIDGET_H_
#define _BASE64_WIDGET_H_

#include <QWidget>
#include <QLabel>
#include <QRadioButton>
#include <QButtonGroup>
#include <QPushButton>
#include <QTextEdit>

class Widget;

class CBase64Widget : public QWidget {
    Q_OBJECT

public:
    explicit CBase64Widget(QWidget *parent = 0);
    virtual ~CBase64Widget();

private:
    // 初始化界面
    bool InitUi(void);
    // 删除界面初始化
    void DeleteUi(void);
    // 初始化数据
    bool InitData(void);
    // 删除数据
    void DeleteData(void);

private:
    // 初始化编解码
    bool InitUiEncode(void);
    void DeleteUiEncode(void);

private:
    // 初始化模式
    bool InitUiMode(void);
    void DeleteUiMode(void);

private:
    // 初始化显示
    bool InitUiDisplay(void);
    void DeleteUiDisplay(void);

private:
    // 初始化信号
	bool InitSignals(void);
	void DeleteSignals(void);

private slots:
    // 槽 转化选项变化
    void RadioChangeSlot();
    // 槽 转化
    void ConvertionSlot();

private: // 转化功能函数
    // 获取校验方式处理报文
    QString GetConvertString(void);

private:
    // 编解码
    QLabel *m_labelEncode;
    // 选项
    QRadioButton *m_radioEncode;
    QRadioButton *m_radioDecode;
    QButtonGroup *m_groupEncode;

    // 显示方式
    QLabel *m_labelMode;
    // 选项
    QRadioButton *m_radioHex;
    QRadioButton *m_radioAsc;
    QButtonGroup *m_groupMode;

    // 显示区
    QPushButton *m_buttonConvert; // 转化按钮
    QTextEdit *m_editBefore; // 校验前输入框
    QTextEdit *m_editAfter; // 校验后显示框

private:
    Widget *m_widgetMain;
};

#endif /* _BASE64_WIDGET_H_ */

// This file is set to c + + mode when you set the following content to the bottom and reopen the file
// Local Variables:
// mode: c++
// End:
